namespace ext.grid
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// A Grid column type which renders an icon, or a series of icons in a grid cell, and offers a scoped click
	/// handler for each icon. Example usage:  
	/// new Ext.grid.GridPanel({
	/// store: myStore,
	/// columns: [
	/// {
	/// xtype: &apos;actioncolumn&apos;,
	/// width: 50,
	/// items: [
	/// {
	/// icon : &apos;sell.gif&apos;, // Use a URL in the icon config
	/// tooltip: &apos;Sell stock&apos;,
	/// handler: function(grid, rowIndex, colIndex) {
	/// var rec = store.getAt(rowIndex);
	/// alert(&quot;Sell &quot; + rec.get(&apos;company&apos;));
	/// }
	/// },
	/// {
	/// getClass: function(v, meta, rec) { // Or return a class from a function
	/// if (rec.get(&apos;change&apos;) &lt; 0) {
	/// this.items[1].tooltip = &apos;Do not buy!&apos;;
	/// return &apos;alert-col&apos;;
	/// } else {
	/// this.items[1].tooltip = &apos;Buy stock&apos;;
	/// return &apos;buy-col&apos;;
	/// }
	/// },
	/// handler: function(grid, rowIndex, colIndex) {
	/// var rec = store.getAt(rowIndex);
	/// alert(&quot;Buy &quot; + rec.get(&apos;company&apos;));
	/// }
	/// }
	/// ]
	/// }
	/// //any other columns here
	/// ]
	/// });
	///  The action column can be at any index in the columns array, and a grid can have any number of
	/// action columns.
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;A Grid column type which renders an icon, or a series of icons in a grid cell, and offers a scoped click
	/// handler for each icon. Example usage:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// new Ext.grid.GridPanel({
	/// store: myStore,
	/// columns: [
	/// {
	/// xtype: &apos;actioncolumn&apos;,
	/// width: 50,
	/// items: [
	/// {
	/// icon : &apos;sell.gif&apos;, // Use a URL in the icon config
	/// tooltip: &apos;Sell stock&apos;,
	/// handler: function(grid, rowIndex, colIndex) {
	/// var rec = store.getAt(rowIndex);
	/// alert(&quot;Sell &quot; + rec.get(&apos;company&apos;));
	/// }
	/// },
	/// {
	/// getClass: function(v, meta, rec) { // Or return a class from a function
	/// if (rec.get(&apos;change&apos;) &lt; 0) {
	/// this.items[1].tooltip = &apos;Do not buy!&apos;;
	/// return &apos;alert-col&apos;;
	/// } else {
	/// this.items[1].tooltip = &apos;Buy stock&apos;;
	/// return &apos;buy-col&apos;;
	/// }
	/// },
	/// handler: function(grid, rowIndex, colIndex) {
	/// var rec = store.getAt(rowIndex);
	/// alert(&quot;Buy &quot; + rec.get(&apos;company&apos;));
	/// }
	/// }
	/// ]
	/// }
	/// //any other columns here
	/// ]
	/// });
	/// &lt;/pre&gt;&lt;/code&gt;
	/// &lt;p&gt;The action column can be at any index in the columns array, and a grid can have any number of
	/// action columns. &lt;/p&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\grid\Column.js</definedin>
	[ScriptName("ActionColumn")]
	[ScriptNamespace("Ext.grid")]
	[Imported()]
	public partial class ActionColumn : ext.grid.Column
	{
		
		#region Constructors
		public ActionColumn(ext.grid.ActionColumn_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public ActionColumn()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// The URL of an image to display as the clickable element in the column.
		/// Optional - defaults to {@link Ext#BLANK_IMAGE_URL Ext.BLANK_IMAGE_URL}.
		/// </summary>
		/// <htmlSummary>
		/// The URL of an image to display as the clickable element in the column.
		/// Optional - defaults to &lt;code&gt;{@link Ext#BLANK_IMAGE_URL Ext.BLANK_IMAGE_URL}&lt;/code&gt;.
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("icon")]
		public string Icon;
		
		/// <summary>A CSS class to apply to the icon image. To determine the class dynamically, configure the Column with a {@link #getClass} function.</summary>
		/// <htmlSummary>A CSS class to apply to the icon image. To determine the class dynamically, configure the Column with a &lt;code&gt;{@link #getClass}&lt;/code&gt; function.</htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("iconCls")]
		public string IconCls;
		
		/// <summary>
		/// A function called when the icon is clicked.
		/// The handler is passed the following parameters:   grid : GridPanel The owning GridPanel.   rowIndex : Number The row index clicked on.   colIndex : Number The column index clicked on.   item : Object The clicked item (or this Column if multiple
		/// {@link #items} were not configured).   e : Event The click event.
		/// </summary>
		/// <htmlSummary>
		/// A function called when the icon is clicked.
		/// The handler is passed the following parameters:&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;code&gt;grid&lt;/code&gt; : GridPanel&lt;div class=&quot;sub-desc&quot;&gt;The owning GridPanel.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;rowIndex&lt;/code&gt; : Number&lt;div class=&quot;sub-desc&quot;&gt;The row index clicked on.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;colIndex&lt;/code&gt; : Number&lt;div class=&quot;sub-desc&quot;&gt;The column index clicked on.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;item&lt;/code&gt; : Object&lt;div class=&quot;sub-desc&quot;&gt;The clicked item (or this Column if multiple
		/// {@link #items} were not configured).&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;e&lt;/code&gt; : Event&lt;div class=&quot;sub-desc&quot;&gt;The click event.&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("handler")]
		public System.Delegate Handler;
		
		/// <summary>
		/// The scope (this reference) in which the {@link #handler}
		/// and {@link #getClass} fuctions are executed. Defaults to this Column.
		/// </summary>
		/// <htmlSummary>
		/// The scope (&lt;tt&gt;&lt;b&gt;this&lt;/b&gt;&lt;/tt&gt; reference) in which the &lt;code&gt;{@link #handler}&lt;/code&gt;
		/// and &lt;code&gt;{@link #getClass}&lt;/code&gt; fuctions are executed. Defaults to this Column.
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("scope")]
		public object Scope;
		
		/// <summary>
		/// A tooltip message to be displayed on hover. {@link Ext.QuickTips#init Ext.QuickTips} must have
		/// been initialized.
		/// </summary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("tooltip")]
		public string Tooltip;
		
		/// <summary>Defaults to true. Prevent grid row selection upon mousedown.</summary>
		/// <htmlSummary>Defaults to &lt;code&gt;true&lt;/code&gt;. Prevent grid &lt;i&gt;row&lt;/i&gt; selection upon mousedown.</htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("stopSelection")]
		public bool StopSelection;
		
		/// <summary>
		/// A function which returns the CSS class to apply to the icon image.
		/// The function is passed the following parameters:   v : Object The value of the column&apos;s configured field (if any).   metadata : Object An object in which you may set the following attributes:  css : String A CSS class name to add to the cell&apos;s TD element.   attr : String An HTML attribute definition string to apply to the data container element within the table cell
		/// (e.g. &apos;style=&quot;color:red;&quot;&apos;).      r : Ext.data.Record The Record providing the data.   rowIndex : Number The row index..   colIndex : Number The column index.   store : Ext.data.Store The Store which is providing the data Model.
		/// </summary>
		/// <htmlSummary>
		/// A function which returns the CSS class to apply to the icon image.
		/// The function is passed the following parameters:&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;v&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The value of the column&apos;s configured field (if any).&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;metadata&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;An object in which you may set the following attributes:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;css&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;A CSS class name to add to the cell&apos;s TD element.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;attr&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;An HTML attribute definition string to apply to the data container element &lt;i&gt;within&lt;/i&gt; the table cell
		/// (e.g. &apos;style=&quot;color:red;&quot;&apos;).&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;r&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The Record providing the data.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;rowIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The row index..&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;colIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The column index.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;store&lt;/b&gt; : Ext.data.Store&lt;p class=&quot;sub-desc&quot;&gt;The Store which is providing the data Model.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("getClass")]
		public System.Delegate GetClass;
		
		/// <summary>
		/// An Array which may contain multiple icon definitions, each element of which may contain:
		///   icon : String The url of an image to display as the clickable element
		/// in the column.   iconCls : String A CSS class to apply to the icon image.
		/// To determine the class dynamically, configure the item with a getClass function.   getClass : Function A function which returns the CSS class to apply to the icon image.
		/// The function is passed the following parameters:  v : Object The value of the column&apos;s configured field (if any).   metadata : Object An object in which you may set the following attributes:  css : String A CSS class name to add to the cell&apos;s TD element.   attr : String An HTML attribute definition string to apply to the data container element within the table cell
		/// (e.g. &apos;style=&quot;color:red;&quot;&apos;).      r : Ext.data.Record The Record providing the data.   rowIndex : Number The row index..   colIndex : Number The column index.   store : Ext.data.Store The Store which is providing the...
		/// </summary>
		/// <htmlSummary>
		/// An Array which may contain multiple icon definitions, each element of which may contain:
		/// &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;code&gt;icon&lt;/code&gt; : String&lt;div class=&quot;sub-desc&quot;&gt;The url of an image to display as the clickable element
		/// in the column.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;iconCls&lt;/code&gt; : String&lt;div class=&quot;sub-desc&quot;&gt;A CSS class to apply to the icon image.
		/// To determine the class dynamically, configure the item with a &lt;code&gt;getClass&lt;/code&gt; function.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;getClass&lt;/code&gt; : Function&lt;div class=&quot;sub-desc&quot;&gt;A function which returns the CSS class to apply to the icon image.
		/// The function is passed the following parameters:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;v&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The value of the column&apos;s configured field (if any).&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;metadata&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;An object in which you may set the following attributes:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;css&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;A CSS class name to add to the cell&apos;s TD element.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;attr&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;An HTML attribute definition string to apply to the data container element &lt;i&gt;within&lt;/i&gt; the table cell
		/// (e.g. &apos;style=&quot;color:red;&quot;&apos;).&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;r&lt;/b&gt; : Ext.data.Record&lt;p class=&quot;sub-desc&quot;&gt;The Record providing the data.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;rowIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The row index..&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;colIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The column index.&lt;/p&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;store&lt;/b&gt; : Ext.data.Store&lt;p class=&quot;sub-desc&quot;&gt;The Store which is providing the data Model.&lt;/p&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;handler&lt;/code&gt; : Function&lt;div class=&quot;sub-desc&quot;&gt;A function called when the icon is clicked.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;scope&lt;/code&gt; : Scope&lt;div class=&quot;sub-desc&quot;&gt;The scope (&lt;code&gt;&lt;b&gt;this&lt;/b&gt;&lt;/code&gt; reference) in which the
		/// &lt;code&gt;handler&lt;/code&gt; and &lt;code&gt;getClass&lt;/code&gt; functions are executed. Fallback defaults are this Column&apos;s
		/// configured scope, then this Column.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;tooltip&lt;/code&gt; : String&lt;div class=&quot;sub-desc&quot;&gt;A tooltip message to be displayed on hover.
		/// {@link Ext.QuickTips#init Ext.QuickTips} must have been initialized.&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("items")]
		public System.Array Items;
		
		/// <summary>The alt text to use for the image element. Defaults to &apos;&apos;.</summary>
		/// <htmlSummary>The alt text to use for the image element. Defaults to &lt;tt&gt;&apos;&apos;&lt;/tt&gt;.</htmlSummary>
		/// <definedin>src\widgets\grid\Column.js</definedin>
		[ScriptName("altText")]
		public string AltText;
		#endregion
	}
}
